home *** CD-ROM | disk | FTP | other *** search
- 'Sadece QBX'de (versiyon 7.1) çalìƒìr.
- 'QBX /L BLASTER ƒeklinde yüklenmeli
-
-
- DECLARE SUB Bekleme
- DECLARE SUB Liste ()
- DECLARE SUB Yaz (Bulunan$)
- DECLARE FUNCTION Findfirst% (Ara$, YeniDTA$, BYVAL Fattr%)
- DECLARE FUNCTION Findnext% (YeniDTA$)
- DECLARE SUB SesDinle ()
- DECLARE SUB SesKaydet ()
- DECLARE SUB MikrofonKontrol ()
- DECLARE SUB HareketliMenu ()
- DECLARE SUB VeriAlma ()
- DECLARE SUB Analiz ()
- DECLARE SUB MakineSuratiniOlc ()
- DECLARE SUB Kartara ()
- DECLARE SUB AnaMenu ()
- DECLARE SUB ArkaplanCiz ()
- DECLARE SUB BuDiziniBul ()
- DECLARE SUB CerceveCiz ()
- DECLARE SUB EkranAyarla ()
- DECLARE SUB Elveda ()
- DECLARE SUB KomutYorumla ()
- DECLARE SUB MesajYaz ()
- DECLARE SUB SesDosyaTara ()
- DECLARE SUB Kaydet
- DECLARE SUB SBlaster
-
- 'AltYordamlarda paylaƒìlan deºerler
- COMMON SHARED MenuYatay, MenuDikey, MenuGenis, MenuYuksek, MenuSecim$
- COMMON SHARED EkranAdresi, Tus$, Mesaj$, Program$, Kapasite, Z, Dosya$, Dos$
- COMMON SHARED Hata, Dizin$, Adet, Tercih$, Yatay
- COMMON SHARED VerialYatay, VerialDikey, VerialBoy, Verial$, Veritipi
- COMMON SHARED Sbase, MakineSurati
-
-
- Kapasite = 56
- DIM SHARED Sec$(Kapasite), Renk(10), Al$(3), Sec1$(10)
-
- Program$ = "Bu Program, Programlama Sanatì için Gürol DEMÿR tarafìndan yapìlmìƒtìr."
- ON ERROR GOTO Hatalar
- ArkaplanCiz
- Kartara
- IF Sbase = 0 THEN
- PCOPY 3, 0
- Mesaj$ = "!Sistemde sblaster uyumlu ses kartì bulunamadì..."
- MesajYaz
- END
- END IF
- AnaMenu
-
- Hatalar:
- PCOPY 3, 0
- Mesaj$ = "!Lütfen, bu hatayì bildirin...No:" + STR$(ERR)
- MesajYaz
- END
-
- SUB Analiz
- LOCATE 3, 1
- COLOR Renk(5), Renk(6)
- CLOSE #1
- OPEN Dizin$ + Dosya$ FOR BINARY AS #1
- A$ = SPACE$(20)
- GET #1, , A$
- IF A$ <> "Creative Voice File" + CHR$(&H1A) THEN Hata = 1: EXIT SUB
- GET #1, , BaslamaYeri%
-
- GET #1, , Versiyon%
- GET #1, , Kontrol%
- IF Versiyon% <> 4659 - Kontrol% THEN Hata = 1: EXIT SUB
- LOCATE CSRLIN, 8
- PRINT TAB(8); "╔"; STRING$(63, "═"); "╗"
- Mesaj$ = "Dosya adì=" + Dosya$ + " , Büyüklük=" + LTRIM$(STR$(LOF(1))) + " byte"
- GOSUB Mesaj
- LOCATE CSRLIN, 8
- PRINT TAB(8); "╠"; STRING$(63, "═"); "╣"
- DO
- GOSUB DataAl
- IF BlokTipi = 1 OR BlokTipi = 2 THEN
- IF Devam = 0 THEN
- Devam = 1
- SesBuyuk = 0
- END IF
- ELSE
- IF Devam = 1 THEN
- Devam = 0
- Mesaj$ = " Ses bloku Boy=" + LTRIM$(STR$(SesBuyuk)) + " Byte, Frekans=" + LTRIM$(STR$(Ornekleme)) + " Hz, Paketleme=1:" + LTRIM$(STR$(Paket))
- GOSUB Mesaj
- END IF
- END IF
- SELECT CASE BlokTipi
- CASE 1
- GOSUB Blok1
- CASE 2
- GOSUB Blok2
- CASE 3
- GOSUB Blok3
- CASE 4
- GOSUB Blok4
- CASE 5
- GOSUB Blok5
- CASE 6
- GOSUB Blok6
- CASE 7
- GOSUB Blok7
- CASE 0
- EXIT DO
- END SELECT
- LOOP
-
- Mesaj$ = " Dosya Sonu..."
- GOSUB Mesaj
- LOCATE CSRLIN, 8
- PRINT TAB(8); "╚"; STRING$(63, "═"); "╝"
- EXIT SUB
- Mesaj:
- Mesaj$ = "║ " + LEFT$(Mesaj$ + SPACE$(62), 62) + "║"
- LOCATE CSRLIN, 8
- PRINT Mesaj$
- RETURN
-
- DataAl:
- A$ = " "
- GET #1, , A$
- BlokTipi = ASC(A$)
- RETURN
-
- BuyuklukAl:
- Buyuk = 0
- GOSUB DataAl
- Buyuk = Buyuk + BlokTipi - 2
- GOSUB DataAl
- Buyuk = Buyuk + BlokTipi * 256
- GOSUB DataAl
- Buyuk = Buyuk + BlokTipi * 65536
- RETURN
-
- Oku:
- IF Buyuk - Yer > 32000 THEN Uzunluk = 32000 ELSE Uzunluk = Buyuk - Yer
- A$ = SPACE$(Uzunluk)
- GET #1, , A$
- Yer = Yer + Uzunluk
- SesBuyuk = SesBuyuk + Uzunluk
- IF Yer <> Buyuk THEN GOTO Oku
- RETURN
-
- Blok1:
- GOSUB BuyuklukAl
-
- GOSUB DataAl
- Ornekleme = 1000000 \ (256 - BlokTipi)
-
- GOSUB DataAl
- Paket = 8 / (BlokTipi + 1)
-
- Yer = 0
- GOSUB Oku
- RETURN
-
- Blok2:
- GOSUB BuyuklukAl
- Yer = 0
- GOSUB Oku
- RETURN
-
- Blok3:
- GOSUB BuyuklukAl
- GOSUB DataAl
- SessizOrnekleme = 1000000 \ (256 - BlokTipi)
- Mesaj$ = " Sessizlik bloºu boy=" + LTRIM$(STR$(Buyuk)) + " byte, frekans=" + LTRIM$(STR$(SessizOrnekleme)) + " Hz"
- GOSUB Mesaj
- RETURN
-
- Blok4:
- GOSUB BuyuklukAl
- Marker = 0
- GOSUB DataAl
- Marker = Marker + BlokTipi
- GOSUB DataAl
- Marker = Marker + BlokTipi * 256
- Mesaj$ = " Sürücü özel iƒareti, ÿƒaret=" + LTRIM$(STR$(Marker))
- GOSUB Mesaj
- RETURN
-
- Blok5:
- GOSUB BuyuklukAl
- Mesaj$ = ""
- DO
- GOSUB DataAl
- Mesaj$ = Mesaj$ + CHR$(BlokTipi)
- IF BlokTipi = 0 THEN EXIT DO
- LOOP
- Mesaj$ = " ASCII Mesaj bloºu boy=" + LTRIM$(STR$(Buyuk)) + " byte, mesaj baƒì: " + LEFT$(Mesaj$ + SPACE$(20), 20)
- GOSUB Mesaj
- RETURN
-
- Blok6:
- GOSUB BuyuklukAl
- Tekrar = 0
- GOSUB DataAl
- Tekrar = Tekrar + BlokTipi
- GOSUB DataAl
- Tekrar = Tekrar + BlokTipi * 256
- Ek$ = LTRIM$(STR$(Tekrar)) + " adet"
- IF Tekrar = 65535 THEN Ek$ = "Sonsuza kadar"
- Mesaj$ = "*Tekrarlama baƒlangìcì, tekrarlama sayìsì=" + Ek$
- GOSUB Mesaj
- IF Tekrar > 15 AND Tus$ = "'" THEN
- Mesaj$ = " ≈≈En fazla 15 tekrar dinlenecektir"
- GOSUB Mesaj
- END IF
- RETURN
-
- Blok7:
- GOSUB BuyuklukAl
- Mesaj$ = "*Tekrarlama Sonu.."
- GOSUB Mesaj
- RETURN
-
- END SUB
-
- SUB AnaMenu
- BuDiziniBul
- GOSUB IlkTarama
-
- EkranYaz:
- EkranAyarla
- DEF SEG = 0: POKE 1050, PEEK(1052)
- Secim:
- DO
- V3 = V + V2 * 14
- IF V3 > Adet OR V3 > Kapasite THEN V2 = 0: V = 1: V3 = 1
- Dosya$ = RTRIM$(Sec$(V3))
- COLOR Renk(5), Renk(6)
- GOSUB AktifResim
- DO: A$ = INKEY$: LOOP UNTIL A$ <> ""
- COLOR Renk(1), Renk(2)
- GOSUB AktifResim
- IF LEN(A$) = 2 THEN
- Z = ASC(RIGHT$(A$, 1))
- SELECT CASE Z
- CASE 80
- IF V < 14 THEN V = V + 1 ELSE IF V2 < 4 THEN V2 = V2 + 1: V = 1
- CASE 72
- IF V > 1 THEN V = V - 1 ELSE IF V2 > 0 THEN V2 = V2 - 1: V = 14
- CASE 75
- IF V2 > 0 THEN V2 = V2 - 1
- CASE 77
- IF V2 < 4 THEN V2 = V2 + 1
- END SELECT
- ELSE
- Z = ASC(A$)
- SELECT CASE Z
- CASE 27
- Elveda
- CASE 13
- IF INSTR(Sec$(V3), "<Dz>") = 0 THEN
- GOTO Hareket
- ELSE
- IF INSTR(Sec$(V3), "Önceki") = 0 THEN
- Dizin$ = Dizin$ + RTRIM$(LEFT$(Sec$(V3), 12)) + "\"
- ELSE
- S = 0
- FOR I = LEN(Dizin$) TO 1 STEP -1
- IF MID$(Dizin$, I, 1) = "\" THEN
- IF S = 0 THEN S = 1 ELSE EXIT FOR
- END IF
- Dizin$ = LEFT$(Dizin$, I - 1)
- NEXT
- END IF
- LOCATE 23, 16, 0
- GOSUB IlkTarama
- GOTO EkranYaz
- END IF
- CASE 242, 245
- GOTO Hareket
- CASE 243, 244
- IF INSTR(Sec$(V3), "<Dz>") = 0 THEN
- GOTO Hareket
- END IF
- END SELECT
- END IF
- LOOP
-
-
- 'Aktif Resim Dosyasìnì farklì renkte göster
- AktifResim:
- LOCATE 4 + V, 4 + V2 * 18
- PRINT Sec$(V3)
- RETURN
-
- 'ÿƒlem Rutini
- Hareket:
- KomutYorumla
- IF Hata = 2 THEN GOSUB IlkTarama
- GOTO EkranYaz
- GOTO Secim
-
- 'ÿlk Tarama
- IlkTarama:
- SesDosyaTara
- V = 1: V2 = 0
- RETURN
- END SUB
-
- SUB ArkaplanCiz
- EkranAdresi = &HB800
- DEF SEG = 0
- IF PEEK(&H449) = 7 THEN EkranAdresi = &HB000
- Renk(1) = 1: 'Normal yazì
- Renk(2) = 7
- Renk(3) = 14: 'Menü adì
- Renk(4) = 3
- Renk(5) = 7: 'Aktif Satìr
- Renk(6) = 1
- Renk(7) = 15: 'Menü seçim rengi
- Renk(8) = 7
- Renk(9) = 4: 'Veri Rengi
- Renk(10) = 7
-
- Al$(0) = "QWERTYUIOPªÜASDFGHJKL₧ÿZXCVBNMÖÇ"
- Al$(1) = "qwertyuìopºüasdfghjklƒizxcvbnmöç"
- Al$(2) = "1234567890QWERTYUIOPASDFGHJKLZXCVBNMqwertyuopasdfghjklizxcvbnm:.\"
- Al$(3) = "1234567890"
-
- KEY 2, CHR$(242)
- KEY 3, CHR$(243)
- KEY 4, CHR$(244)
- KEY 5, CHR$(245)
- SCREEN , , 3, 0
- COLOR 9, 7: CLS
- A$ = "Programlama Sanatì..."
- A = LEN(A$)
- FOR I = 0 TO 1840 / A
- B = 80 - C
- IF B <= A THEN
- PRINT LEFT$(A$, B);
- PRINT RIGHT$(A$, A - B);
- C = A - B: D = C
- ELSE
- PRINT A$;
- C = C + A
- END IF
- NEXT
- DEF SEG = EkranAdresi + 256 * 3
- FOR I = 3680 + D * 2 TO 4000 STEP A * 2
- FOR Y = 1 TO A
- POKE I + (Y - 1) * 2, ASC(MID$(A$, Y, 1))
- NEXT
- NEXT
- SCREEN , , 0
- K = 0
- FOR I = 1 TO LEN(Program$)
- K = K + ASC(MID$(Program$, I, 1)) * I
- NEXT
- IF K <> 258646 THEN
- PCOPY 3, 0
- Mesaj$ = "1Programcìnìn ismine saygì duymak gerekmez mi?"
- MesajYaz
- END
- END IF
- END SUB
-
- SUB BuDiziniBul
- Dizin$ = CURDIR$
- IF LEN(Dizin$) > 3 THEN Dizin$ = Dizin$ + "\"
- END SUB
-
- SUB CerceveCiz
- COLOR Renk(1), Renk(2)
- FOR I = 1 TO MenuYuksek - 1
- LOCATE MenuYatay + I, MenuDikey: PRINT "║"; STRING$(MenuGenis, " "); "║"
- NEXT
- LOCATE MenuYatay, MenuDikey
- PRINT "╔"; STRING$(MenuGenis, "═"); "╗"
- LOCATE MenuYatay + MenuYuksek, MenuDikey
- PRINT "╚"; STRING$(MenuGenis, "═"); "╝";
-
- DEF SEG = EkranAdresi
- FOR I = 1 TO MenuGenis + 1
- POKE ((MenuYatay + MenuYuksek) * 160 + (MenuDikey + I) * 2 + 1), 9
- NEXT
- FOR I = 1 TO MenuYuksek + 1
- TR = ((MenuYatay + I - 1) * 160 + (MenuDikey + MenuGenis + 1) * 2 + 1)
- POKE TR, 9
- POKE TR + 2, 9
- NEXT
-
- DEF SEG
- LOCATE MenuYatay + MenuYuksek, MenuDikey + MenuGenis - LEN(Cer$) - 1
- PRINT Cer$
- COLOR Renk(3), Renk(4): LOCATE MenuYatay, MenuDikey + 3: PRINT Sec$(0)
- END SUB
-
- SUB EkranAyarla
- PCOPY 3, 0
- Sec$(0) = "Ana Menu"
- MenuYatay = 2
- MenuGenis = LEN(Dizin$) + 14
- MenuDikey = 75 - MenuGenis
- F = MenuDikey
- MenuYuksek = 2
- CerceveCiz
- Sec$(0) = ""
- MenuYatay = 4
- MenuDikey = 2
- MenuGenis = 73
- MenuYuksek = 15
- CerceveCiz
- MenuYatay = 19
- MenuYuksek = 2
- CerceveCiz
- COLOR Renk(1), Renk(2)
- LOCATE 3, F + 1
- PRINT "Aktif Dizin = "; Dizin$
- LOCATE 4, F
- PRINT "╩"
- LOCATE 4, 76
- PRINT "╣"
- LOCATE 19, 2
- PRINT "╠"
- LOCATE 19, 76
- PRINT "╣"
- LOCATE 20, 8
- PRINT "Sesi Dinle Kaydet Bilgi Al Dosya Sil MicroTest Çìkìƒ"
- COLOR Renk(7), Renk(8)
- LOCATE 20, 55
- PRINT "F5"
- LOCATE 20, 68
- PRINT "Esc"
- LOCATE 20, 3
- PRINT "Enter"
- LOCATE 20, 20
- PRINT "F2"
- LOCATE 20, 30
- PRINT "F3"
- LOCATE 20, 42
- PRINT "F4"
- COLOR Renk(1), Renk(2)
- FOR I = 1 TO 14
- LOCATE 4 + I, 3 + 1
- PRINT Sec$(I)
- LOCATE 4 + I, 21 + 1
- PRINT Sec$(I + 14)
- LOCATE 4 + I, 39 + 1
- PRINT Sec$(I + 28)
- LOCATE 4 + I, 57 + 1
- PRINT Sec$(I + 42)
- NEXT
- END SUB
-
- SUB Elveda
- Cer$ = ""
- Sec$(0) = "[ Ses Kayìt ve Dinleme Programì Ver-1.0]"
- PCOPY 3, 0
- MenuYatay = 2
- MenuDikey = 3
- MenuGenis = 73
- MenuYuksek = 2
- CerceveCiz
- COLOR Renk(2), Renk(1)
- FOR I = 7 TO 25: LOCATE I, 1: PRINT SPACE$(80); : NEXT
- COLOR Renk(1), Renk(2)
- LOCATE 3, 5
- PRINT Program$
- LOCATE 6, 1
- END
- END SUB
-
- SUB HareketliMenu
- CerceveCiz
- FOR I = 1 TO MenuYuksek - 1
- Yata = MenuYatay + I: G = I
- RenkA = Renk(1): RenkB = Renk(2)
- GOSUB AktifYaz
- NEXT
-
- Yatay = MenuYatay + 1
-
- DO
- G = Yatay - MenuYatay
- Yata = Yatay: RenkA = Renk(5): RenkB = Renk(6): GOSUB AktifYaz
-
- DO: Tus$ = INKEY$: LOOP UNTIL Tus$ <> ""
-
- RenkA = Renk(1): RenkB = Renk(2): GOSUB AktifYaz
-
- IF LEN(Tus$) = 2 THEN
- Z = ASC(RIGHT$(Tus$, 1))
- SELECT CASE Z
- CASE 80
- Yatay = Yatay + 1: IF Yatay = MenuYatay + MenuYuksek THEN Yatay = MenuYatay + 1
- CASE 72
- Yatay = Yatay - 1: IF Yatay = MenuYatay THEN Yatay = MenuYatay + MenuYuksek - 1
- END SELECT
- END IF
-
- IF ASC(Tus$) = 27 THEN
- Tus$ = ""
- EXIT SUB
- END IF
-
- IF ASC(Tus$) = 13 THEN Yer = ASC(Sec1$(G)) + 1: Tus$ = MID$(Sec1$(G), Yer, 1)
- V = INSTR(LEFT$(Al$(1), 34), Tus$)
- IF V > 0 THEN Tus$ = MID$(Al$(0), V, 1)
- V = INSTR(MenuSecim$, Tus$)
- IF V > 0 THEN Yatay = MenuYatay + V: EXIT SUB
- LOOP
-
- AktifYaz:
- LOCATE Yata, MenuDikey + 1
- COLOR RenkA, RenkB
- PRINT MID$(Sec1$(G), 2, LEN(Sec1$(G)) - 1)
- Yer = ASC(Sec1$(G)) + 1
- LOCATE Yata, MenuDikey + 1 + Yer - 2
- COLOR Renk(7)
- PRINT MID$(Sec1$(G), Yer, 1)
- RETURN
-
- END SUB
-
- SUB Kartara
- DIM Adres(6)
-
- Adres(1) = &H210
- Adres(2) = &H220
- Adres(3) = &H230
- Adres(4) = &H240
- Adres(5) = &H250
- Adres(6) = &H260
- FOR I = 1 TO 6
- GOSUB Seskartara
- NEXT
- EXIT SUB
-
- Seskartara:
- TABAN = Adres(I)
- GOSUB SesKartTetikle
- GOSUB SesKartVarveyaYok
- IF Var = 1 THEN Sbase = TABAN
- RETURN
-
- SesKartTetikle:
- 'ÿlk deºerler gönderiliyor
- A = INP(TABAN + &HE)
- OUT TABAN + 6, 1
- A = INP(TABAN + 6)
- A = INP(TABAN + 6)
- A = INP(TABAN + 6)
- OUT TABAN + 6, 0
- RETURN
-
- SesKartVarveyaYok:
- Var = 0
- FOR Y3 = 1 TO 10
- IF INP(TABAN + &HE) AND 128 <> 0 THEN
- IF INP(TABAN + &HA) = 170 THEN
- Var = 1
- EXIT FOR
- END IF
- END IF
- NEXT Y3
- RETURN
-
- END SUB
-
- SUB KomutYorumla
- Hata = 0
- PCOPY 3, 0
-
- IF Z = 13 THEN
- Tus$ = "'"
- Analiz
- Tus$ = ""
- IF Hata = 0 THEN
- SesDinle
- END IF
- END IF
-
- IF Z = 242 THEN
- SesKaydet
- END IF
-
- IF Z = 243 THEN
- Analiz
- IF Hata = 0 THEN DO: LOOP UNTIL INKEY$ <> ""
- END IF
-
- IF Z = 244 THEN
- Mesaj$ = "2" + Dosya$ + " silinsin mi? E)vet, H)ayìr"
- MesajYaz
- IF Tercih$ = "E" THEN
- CLOSE #1
- KILL Dizin$ + Dosya$
- Hata = 2
- END IF
- END IF
-
- IF Z = 245 THEN
- MikrofonKontrol
- IF Hata = 0 THEN DO: LOOP UNTIL INKEY$ <> ""
- END IF
-
- IF Hata = 1 THEN
- Mesaj$ = "1" + Dosya$ + " bir ses dosyasì deºil!!"
- MesajYaz
- END IF
- END SUB
-
- SUB Liste STATIC
- 'Verilen dizine geç
- Mevcut$ = CURDIR$
- CHDIR "\"
- Diz$ = "\"
- IF LEN(Dizin$) > 3 THEN Diz$ = MID$(Dizin$, 3, LEN(Dizin$) - 3)
- CHDIR Diz$
-
- 'Ara
- Dtabuf$ = SPACE$(43)
- Sonuc = Findfirst%("*.*" + CHR$(0), Dtabuf$, &H37)
- WHILE Sonuc
- CALL Yaz(Dtabuf$)
- Sonuc = Findnext%(Dtabuf$)
- WEND
- Dtabuf$ = ""
-
- 'Eski dizine geç
- CHDIR Mevcut$
- END SUB
-
- SUB MakineSuratiniOlc
- DEF SEG = &HB900
- POKE 0, 0
- POKE 1, 0
- POKE 2, 0
- POKE 3, 0
- Bekleme
- 'Her ihtimale karƒì Degisken=? hìz kontrol
- Degisken = 140
- MakineSurati = Degisken * (PEEK(0) + PEEK(1) * 256 + (PEEK(2) + PEEK(3) * 256) * 65000)
- END SUB
-
- SUB MesajYaz
- PCOPY 0, 2
- LOCATE , , 0
- M1 = 11
- M3 = LEN(Mesaj$) + 1
- M2 = FIX((80 - M3) / 2)
- M4 = 2
- COLOR Renk(1), Renk(2)
- FOR I = 1 TO M4 - 1
- LOCATE M1 + I, M2
- PRINT "║"; STRING$(M3, " "); "║"
- NEXT
- LOCATE M1, M2
- PRINT "╔"; STRING$(M3, "═"); "╗"
- LOCATE M1 + M4, M2
- PRINT "╚"; STRING$(M3, "═"); "╝";
- DEF SEG = EkranAdresi
- FOR I = 1 TO M3 + 1
- A = ((M1 + M4) * 160 - 1 + (M2 + I) * 2 + 1)
- POKE A + 1, 9
- NEXT
- FOR I = 1 TO M4 + 1
- TR = ((M1 + I - 1) * 160 + (M2 + M3 + 1) * 2 + 1)
- POKE TR, 9: POKE TR + 2, 9
- NEXT
- DEF SEG
- DO
- LOCATE M1 + 1, M2 + 2: PRINT RIGHT$(Mesaj$, M3 - 2)
- IF ASC(Mesaj$) < 34 THEN EXIT DO
- PLAY "O2L8DP64"
- DO: Tercih$ = INKEY$: LOOP UNTIL Tercih$ <> ""
- IF ASC(Mesaj$) = 49 THEN EXIT DO
- SELECT CASE Tercih$
- CASE "E", "e"
- Tercih$ = "E"
- EXIT DO
- CASE "H", "h", CHR$(27)
- EXIT DO
- END SELECT
- LOOP
- IF ASC(Mesaj$) <> 33 THEN PCOPY 2, 0
- END SUB
-
- SUB MikrofonKontrol
- Sec$(0) = "Mikrofon Test"
- MenuYatay = 3
- MenuDikey = 6
- MenuGenis = 66
- MenuYuksek = 17
- CerceveCiz
- COLOR Renk(1), Renk(2)
- Y = 7
- DO
- IF INP(&H60) = 1 THEN EXIT DO
- OUT Sbase + 12, 32
- A = INP(Sbase + 10)
- A = FIX(A / 11)
- IF A > 11 THEN C = 1 ELSE C = -1
- IF A = 11 THEN B$ = CHR$(196) ELSE B$ = CHR$(219)
- FOR I = 11 TO A STEP C
- LOCATE I, Y
- K = SCREEN(I, Y)
- IF K = 32 OR K = 196 THEN PRINT B$
- NEXT
- Y = Y + .0625
- IF Y > 72 THEN
- Y = 7
- FOR I = 4 TO 19
- LOCATE I, 7
- PRINT SPACE$(66)
- NEXT
- END IF
- LOOP
- END SUB
-
- SUB SesDinle
- Blok$ = ""
- MakineSuratiniOlc
- Port = Sbase + 12
- OUT Port, &HD1
- DinleDosya$ = Dizin$ + Dosya$
- CLOSE #1
- OPEN DinleDosya$ FOR BINARY AS #1
- A$ = SPACE$(20)
- GET #1, , A$
- GET #1, , BaslamaYeri%
- GET #1, , Versiyon%
- GET #1, , Kontrol%
- A$ = " "
- GET #1, BaslamaYeri%, A$
- GOSUB DosyaAnaliz
- DEF SEG = &HB900
- REDIM A%(32766)
- C = VARSEG(A%(0))
- bl7 = FIX(C / 256)
- bl8 = C - bl7 * 256
- POKE 0, bl8
- POKE 1, bl7
- C = VARPTR(A%(0))
- bl7 = FIX(C / 256)
- bl8 = C - bl7 * 256
- POKE 2, bl8
- POKE 3, bl7
- C = Port
- bl7 = FIX(C / 256)
- bl8 = C - bl7 * 256
- POKE 4, bl8
- POKE 5, bl7
-
- C = LEN(Blok$) + 100
- bl7 = FIX(C / 256)
- bl8 = C - bl7 * 256
- POKE 8, 100
- POKE 9, 0
- POKE 10, bl8
- POKE 11, bl7
- FOR I = 1 TO LEN(DinleDosya$)
- POKE 29 + I, ASC(MID$(DinleDosya$, I, 1))
- POKE 30 + I, 0
- NEXT
- FOR I = 1 TO LEN(Blok$)
- POKE 99 + I, ASC(MID$(Blok$, I, 1))
- FOR Y = 1 TO 8
- POKE 100 + I + Y, 0
- NEXT
- NEXT
- Mesaj$ = "!" + Dosya$ + " çalìnìyor....Esc)Bitir"
- MesajYaz
- SBlaster
- A$ = INKEY$
- EXIT SUB
-
- DosyaAnaliz:
- DO
- GOSUB Dataal2
- SELECT CASE BlokTipi
- CASE 1
- GOSUB b2lok1
- CASE 2
- GOSUB b2lok2
- CASE 3
- GOSUB b2lok3
- CASE 4
- GOSUB b2lok4
- CASE 5
- GOSUB b2lok5
- CASE 6
- GOSUB b2lok6
- CASE 7
- GOSUB b2lok7
- CASE 0
- EXIT DO
- END SELECT
- LOOP
- RETURN
-
- Dataal2:
- A$ = " "
- GET #1, , A$
- BlokTipi = ASC(A$)
- RETURN
-
- buyuklukal2:
- Buyuk = 0
- GOSUB Dataal2
- Buyuk = Buyuk + BlokTipi - 2
- GOSUB Dataal2
- Buyuk = Buyuk + BlokTipi * 256
- GOSUB Dataal2
- Buyuk = Buyuk + BlokTipi * 65536
- RETURN
-
- oku22:
- Yer2 = LOC(1)
- oku11:
- IF Buyuk - Yer > 54000 THEN Uzunluk = 54000 ELSE Uzunluk = Buyuk - Yer
- OrnekRate = (MakineSurati / Ornekleme) * Paket
- Bl1 = FIX(LOC(1) / 65536)
- Bl2 = LOC(1) - Bl1 * 65536
- C = Bl1
- bl7 = FIX(C / 256)
- bl8 = C - bl7 * 256
- Blok$ = Blok$ + CHR$(bl8) + CHR$(bl7)
- C = Bl2
- bl7 = FIX(C / 256)
- bl8 = C - bl7 * 256
- Blok$ = Blok$ + CHR$(bl8) + CHR$(bl7)
- C = Uzunluk
- bl7 = FIX(C / 256)
- bl8 = C - bl7 * 256
- Blok$ = Blok$ + CHR$(bl8) + CHR$(bl7)
-
- C = OrnekRate
- bl7 = FIX(C / 256)
- bl8 = C - bl7 * 256
- Blok$ = Blok$ + CHR$(bl8) + CHR$(bl7)
-
- Yer2 = Yer2 + Uzunluk
- A$ = " "
- GET #1, Yer2, A$
- Yer = Yer + Uzunluk
- IF INP(&H60) = 1 THEN RETURN
- IF Yer <> Buyuk THEN GOTO oku22
- RETURN
-
- b2lok1:
- GOSUB buyuklukal2
-
- GOSUB Dataal2
- Ornekleme = 1000000 \ (256 - BlokTipi)
- GOSUB Dataal2
- Paket1 = 8 / (BlokTipi + 1)
- Paket = BlokTipi + 1
- Yer = 0
- GOSUB oku22
- RETURN
-
- b2lok2:
- GOSUB buyuklukal2
- Yer = 0
- GOSUB oku22
- RETURN
-
- b2lok3:
- GOSUB buyuklukal2
- GOSUB Dataal2
- SessizOrnekleme = 1000000 \ (256 - BlokTipi)
- 'Sessizlik bloºu dikkate alìnmamìƒtìr
- RETURN
-
- b2lok4:
- GOSUB buyuklukal2
- Marker = 0
- GOSUB Dataal2
- Marker = Marker + BlokTipi
- GOSUB Dataal2
- Marker = Marker + BlokTipi * 256
- RETURN
-
- b2lok5:
- GOSUB buyuklukal2
- Mesaj$ = ""
- DO
- GOSUB Dataal2
- Mesaj$ = Mesaj$ + CHR$(BlokTipi)
- IF BlokTipi = 0 THEN EXIT DO
- LOOP
- 'RTRIM$(LEFT$(Mesaj$ + SPACE$(30), 30)); " ƒeklinde baƒlayan mesaja rastlandì.."
- RETURN
-
- b2lok6:
- GOSUB buyuklukal2
- Tekrar = 0
- GOSUB Dataal2
- Tekrar = Tekrar + BlokTipi
- GOSUB Dataal2
- Tekrar = Tekrar + BlokTipi * 256
- IF Tekrar > 15 THEN
- Tekrar = 15
- 'En fazla 15 tekrar yapìlmasìna müsaade edilecektir.
- END IF
- Nerden = LOC(1)
- RETURN
-
- b2lok7:
- GOSUB buyuklukal2
- IF Tekrar <> 65535 THEN Tekrar = Tekrar - 1
- IF Tekrar > 0 THEN
- A$ = " "
- GET #1, Nerden, A$
- GOSUB DosyaAnaliz
- END IF
- RETURN
-
-
- END SUB
-
- SUB SesDosyaTara
- PCOPY 3, 0
- FOR I = 1 TO Kapasite
- Sec$(I) = ""
- NEXT
-
- IF LEN(Dizin$) > 3 THEN
- Adet = 1
- Sec$(1) = "Önceki... <Dz>"
- ELSE
- Adet = 0
- END IF
-
- CALL Liste
- END SUB
-
- SUB SesKaydet
- MakineSuratiniOlc
- Sec$(0) = "Ornekleme Hìzì"
- Sec1$(1) = CHR$(12) + " Saniyede 3900 byte "
- Sec1$(2) = CHR$(11) + " Saniyede 6000 byte "
- Sec1$(3) = CHR$(11) + " Saniyede 8000 byte "
- Sec1$(4) = CHR$(12) + " Saniyede 10000 byte "
- Sec1$(5) = CHR$(11) + " Saniyede 11000 byte "
- Sec1$(6) = CHR$(12) + " Saniyede 12000 byte "
- Sec1$(7) = CHR$(12) + " Saniyede 13000 byte "
- Sec1$(8) = CHR$(12) + " Saniyede 14000 byte "
- Sec1$(9) = CHR$(12) + " Saniyede 15000 byte "
- Sec1$(10) = CHR$(2) + " Klavyeden giriƒ "
- MenuYatay = 4
- MenuDikey = 29
- MenuGenis = 21
- MenuYuksek = 11
- MenuSecim$ = "968012345K"
- HareketliMenu
- Frekans = VAL(MID$(Sec1$(Yatay - MenuYatay), 12, 5))
- IF Tus$ = "" THEN EXIT SUB
- IF Frekans = 0 THEN
- Sec$(0) = "Hìz"
- MenuYatay = 17
- MenuDikey = 35
- MenuGenis = 7
- MenuYuksek = 2
- CerceveCiz
- VerialYatay = 18
- VerialDikey = 37
- Verial$ = ""
- Veritipi = 2
- VerialBoy = 5
- VeriAlma
- Frekans = VAL(Verial$)
- IF Frekans < 3900 OR Frekans > 42500 THEN EXIT SUB
- IF Z = 27 THEN EXIT SUB
- END IF
- Sec$(0) = "Dosya Adì"
- MenuYatay = 17
- MenuDikey = 5
- MenuGenis = 66
- MenuYuksek = 2
- CerceveCiz
- VerialYatay = 18
- VerialDikey = 7
- Verial$ = LEFT$(Dizin$ + SPACE$(64), 64)
- Veritipi = 2
- VerialBoy = 64
- VeriAlma
- Verial$ = RTRIM$(Verial$)
- IF INSTR(Verial$, ".") = 0 THEN Verial$ = Verial$ + ".VOC"
- IF Z = 27 THEN EXIT SUB
- KayDosya$ = Verial$
- Mesaj$ = "!" + Verial$ + " kaydediliyor....Esc)Bitir"
- MesajYaz
-
- CLOSE #1
- OPEN KayDosya$ FOR BINARY AS #1
- IF LOF(1) <> 0 THEN
- Mesaj$ = "2Bu isimde dosya var üzerine yazìlsìn mì? E)vet H)ayìr"
- MesajYaz
- IF Tercih$ <> "E" THEN EXIT SUB
- CLOSE #1
- KILL KayDosya$
- END IF
- CLOSE #1
- Bekle = MakineSurati / Frekans
-
- REDIM A%(32766)
- DEF SEG = &HB900
- C = VARSEG(A%(0))
- bl7 = FIX(C / 256)
- bl8 = C - bl7 * 256
- POKE 4, bl8
- POKE 5, bl7
- C = VARPTR(A%(0))
- bl7 = FIX(C / 256)
- bl8 = C - bl7 * 256
- POKE 6, bl8
- POKE 7, bl7
- FOR I = 1 TO LEN(KayDosya$)
- POKE I + 9, ASC(MID$(KayDosya$, I, 1))
- NEXT
- POKE I + 9, 0
-
- POKE 1, FIX(Bekle / 256)
- POKE 0, Bekle - PEEK(1) * 256
- POKE 3, FIX(Sbase / 256)
- POKE 2, Sbase - PEEK(3) * 256
-
- Kaydet
- CLOSE #1
- OPEN KayDosya$ FOR BINARY AS #1
-
- A$ = CHR$(0)
- PUT #1, LOF(1) + 1, A$
-
- A = LOF(1) - 31
- Uc = FIX(A / 65536)
- iki = FIX((A - Uc * 65536) / 256)
- bir = A - Uc * 65536 - iki * 256
-
- A$ = "Creative Voice File" + CHR$(&H1A) + CHR$(&H1A) + CHR$(0) + CHR$(&HA) + CHR$(1) + CHR$(&H29) + CHR$(&H11)
- A$ = A$ + CHR$(1) + CHR$(bir) + CHR$(iki) + CHR$(Uc) + CHR$(256 - 1000000 / Frekans) + CHR$(0)
- PUT #1, 1, A$
- Hata = 2
- END SUB
-
- SUB VeriAlma
- IF Verial$ = "" THEN Verial$ = SPACE$(VerialBoy)
- F = LEN(RTRIM$(Verial$)) + 1: G = 1
- DO
- LOCATE VerialYatay, VerialDikey
- COLOR Renk(5), Renk(6)
- IF F > VerialBoy THEN F = VerialBoy: G = 0
- PRINT Verial$
- LOCATE VerialYatay, VerialDikey + F - 1, 1
- IF JL = 1 THEN LOCATE , , , 4, 7 ELSE LOCATE , , , 6, 7
- DEF SEG = 0: POKE 1050, PEEK(1052)
- DO: Tus$ = INKEY$: LOOP UNTIL Tus$ <> ""
-
- IF LEN(Tus$) = 2 THEN
- Z = ASC(RIGHT$(Tus$, 1))
- SELECT CASE Z
- CASE 77
- F = F + 1
- CASE 75
- IF F > 1 THEN F = F - 1
- CASE 83
- Verial$ = LEFT$(Verial$, F - 1) + RIGHT$(Verial$, VerialBoy - F) + " "
- CASE 82
- IF JL = 0 THEN JL = 1 ELSE JL = 0
- CASE 80, 72
- EXIT DO
- END SELECT
- ELSE
- Z = ASC(Tus$)
- SELECT CASE Z
- CASE 27, 13
- EXIT DO
- CASE ELSE
- IF Z = 8 THEN
- IF F > 1 THEN
- F = F - 1
- Verial$ = LEFT$(Verial$, F - 1) + RIGHT$(Verial$, VerialBoy - F) + " "
- END IF
- ELSE
- Normal = 0
- IF INSTR(Al$(Veritipi), Tus$) > 0 THEN Normal = 1
- IF Normal = 1 THEN
- IF JL = 1 THEN MID$(Verial$, F, 1) = Tus$ ELSE Verial$ = LEFT$(Verial$, F - 1) + Tus$ + MID$(Verial$, F, VerialBoy - F)
- F = F + 1
- ELSE
- PLAY "O2L8DP64"
- END IF
- END IF
- END SELECT
- END IF
- LOOP
- LOCATE , , 0
- END SUB
-
- SUB Yaz (Bulunan$) STATIC
- IF Adet = Kapasite THEN EXIT SUB
- A$ = MID$(Bulunan$, 31, INSTR(31, Bulunan$, CHR$(0)) - 31)
- IF (ASC(MID$(Bulunan$, 22, 4)) AND &H10) AND LEFT$(A$, 1) <> "." THEN
- Adet = Adet + 1
- Sec$(Adet) = LEFT$(A$ + SPACE$(12), 12) + "<Dz>"
- ELSE
- IF INSTR(A$, ".VOC") > 0 THEN
- Adet = Adet + 1
- Sec$(Adet) = A$
- END IF
- END IF
- END SUB
-
-